Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPS-0001 | Metadata Discoverability and Trust #371

Closed

Conversation

ehanoc
Copy link
Contributor

@ehanoc ehanoc commented Nov 9, 2022

There seems to be multiple proposals and attempts to solve issues around metadata specific to certain contexts. Proposing this as a first CPS in order for us to agree what the general problem actually is and try to steer the process to tackle the root cause of the problem. This is my attempt at describing the problem.


(current draft in branch)

@ehanoc ehanoc changed the title Metadata Problem Statement CPS-???? - Metadata Problem Statement Nov 9, 2022
@rphair rphair changed the title CPS-???? - Metadata Problem Statement CPS-???? - Metadata Discoverability and Trust Nov 11, 2022
@rphair rphair changed the title CPS-???? - Metadata Discoverability and Trust CPS-???? | Metadata Discoverability and Trust Nov 11, 2022
@ehanoc ehanoc marked this pull request as ready for review November 14, 2022 12:50
@rphair
Copy link
Collaborator

rphair commented Nov 30, 2022

among other things, this relates to our currently open CIP's that address identity for individuals (creators / authors) & stake pools:

CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
- Trust can be anchored to the owner's metadata or also third-parties that attest for the correctness of the metadata. How to handle this?
- How to associate identity to a metadata claim?
- How to handle the case where a subject has multiple metadata claims associated with it?
- How to handle the case where a subject has multiple metadata claims associated with it and the user wants to select a specific one?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please re-order the sections as per the latest structure 🙏 (and apologies for this, I guess that goes with being one of the first CPS pioneers!):

  • Abstract
  • Problem
  • Use Cases
  • Goals
  • Open Questions

Also, given the numerous proposed solutions; it might help to formulate what part of the problem remains to be solved and what parts have been properly addressed already.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, given the numerous proposed solutions; it might help to formulate what part of the problem remains to be solved and what parts have been properly addressed already.

Great @KtorZ ; i think here there some attempts in coming out with some solutions (i.e token metadata, off chain storage[cip-26]), for very specific use cases but not to the general problem of discovering, verifying and asserting trust in metadata?

Maybe someone can help me by pointing out current solutions / implementations, that in their opinion, are working well for a specific context. And those can provide lessons to try tackle this in a more generalized way.

CC: @rphair @SebastienGllmt

Copy link
Member

@KtorZ KtorZ Nov 30, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I meant was that, the current document lists several CIPs as "proposed solutions"; which implies that the listed proposals address either partially or fully the problem. If they are simply related to the problem, but not actual solutions to it, then I'd suggest to move them elsewhere (i.e. in the problem statement itself, if those existing efforts and their shortcomings are worth mentioning).

(note: I haven't reviewed the statement yet, nor any of the linked PR; so I am mostly speculating here. My gut feeling being that this particular CPS is about some dimensions of metadata -- discoverability and trust -- that existing CIPs do not address properly. Hence, they shouldn't be listed as 'proposed solutions' because none of them is about solving the discoverability and trust problem in the metadata landscape -- except maybe CIP-0068 in some sense?)

@KtorZ KtorZ changed the title CPS-???? | Metadata Discoverability and Trust CPS-0001 | Metadata Discoverability and Trust Nov 30, 2022
CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
## **Problem**
**`Discoverability`**: Means to discover the different metadata claims associated with a subject. Discoverability is important for wallets, applications (i.e dapps, stores, etc) and users to be able to find the different metadata claims associated with a subject. This is important for the user to be able to make an informed decision on how to interact with a subject.

**`Correctness`**: Lack of mechanism to assert that a given metadata claim is correct. Anybody and any service can provide metadata structures, but it's necessary to attest for the correctness of this metadata so that the user (or applications) are be able to make an informed decision in accepting, rejecting or how to interact with a subject.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would the "metadata is up to date" be part of correctness or discoverability? or neither?

Copy link
Contributor Author

@ehanoc ehanoc Feb 1, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Up to date" to a given point in time? In my mind whatever is anchored on chain is "up to date" and if there will be updates; we need mechanisms to discovery / be notified of new versions. Makes sense?

CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Outdated Show resolved Hide resolved
CPS-0001/README.md Show resolved Hide resolved
ehanoc and others added 5 commits February 1, 2023 04:02
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
Co-authored-by: Ryan Williams <44342099+Ryun1@users.noreply.github.com>
- Associate some form of identity to a metadata claim

## **Open Questions**
- Is this a combination of problems and should be split into multiple CPS?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a combination of problems and should be split into multiple CPS?

It might make sense to split this problem by metadata subject i.e. stake pools, tokens, scripts, etc. As the problem can be solved quite differently for each of these entities.

Without the historical context for CPSs its hard to know how wide the scope should be.

Ryan Williams and others added 2 commits February 17, 2023 10:35
@fallen-icarus
Copy link

fallen-icarus commented Mar 3, 2023

I believe the beacon token CIP here addresses pretty much all of your use cases. I have created reference implementations that do similar things.

  1. Find scripts used by a dapp - cardano-reference-scripts. Users can trustlessly find and use reference scripts being shared by other users in a fully decentralized and cryptographically guaranteed manner.
  2. Discover general information of a dapp - cardano-address-book and cardano-datums. The former shows how you can make it so that only the dapp creators are able to update information using metadata while still being easily found by other users. This behavior is cryptographically guaranteed by the blockchain. The latter shows a similar method but uses datums instead of metadata. IMO datums should be used instead of metadata for public registration because format can be strictly enforced (registration will fail if a required field is missing). I believe this addresses the concern mentioned with CIP-26.
  3. Find the different metadata claims associated with a subject - the cardano-address-book program uses beacon tokens for this.
  4. Associate some form of identity that can be cryptographically verified - the cardano-address-book program does this. This is accomplished by only allowing that beacon token to be minted by that particular user. This is cryptographically enforced by the blockchain.
  5. Offer mechanism to attest for the correctness of a given metadata object that can be fetched by wallets and applications from off-chain sources - using the datums instead of metadata would guarantee correct formatting. As far as truthfulness of the information, by only allowing the user/dapp entity to add information with that beacon token, the risk of this is heavily minimized.
  6. Discover datum schemas used by a script in a specific context or dApp use cases - this was actually one of the motivations for the cardano-datums program.
  7. A wallet receiving a request to connect to a dApp, it can verify the authenticity of the dApp and the metadata associated with it - again, since beacon minting can only be done by the required entity, the authenticity can be cryptographically guaranteed.

Beacon tokens are extremely generalizable. Do you agree that they address your use cases? Or am I misunderstanding something?

@fallen-icarus
Copy link

fallen-icarus commented Mar 3, 2023

To further highlight the generalizability of beacon tokens, I used beacon tokens to create cardano-swaps. It is a distributed DEX proof-of-concept where users maintain full delegation control and custody of their assets at all times. Thanks to beacon tokens, no batchers are needed. Instead, users lookup the beacon tokens to find each other (and the relevant information to execute swaps) in a p2p manner.

@rphair
Copy link
Collaborator

rphair commented Mar 14, 2023

FYI @ehanoc the fact that a candidate CIP is relevant to this CPS came up in today's CIP Editors' Meeting (cc @KtorZ @Ryun1): #467 (comment)

@KtorZ KtorZ added the Category: Metadata Proposals belonging to the 'Metadata' category. label Mar 18, 2023
@rphair
Copy link
Collaborator

rphair commented Aug 19, 2024

@Ryun1 @Crypto2099 it seems a shame that CPS-0001 never went anywhere but @ehanoc I have to assume this has been abandoned at least due to personnel changes.

@fallen-icarus in the unlikely event that you want something extra on your plate, you would have my full confidence to advocate & continue this submission: or perhaps just to tag anyone else who might be interested in reopening & completing it.

@rphair rphair closed this Aug 19, 2024
@rphair rphair added the State: Likely Abandoned Close if confirmed abandoned (long waiting). label Aug 19, 2024
@Ryun1
Copy link
Collaborator

Ryun1 commented Aug 22, 2024

I would like to pick this one back up, when I have time :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Metadata Proposals belonging to the 'Metadata' category. State: Likely Abandoned Close if confirmed abandoned (long waiting).
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants